/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ciberiasoluciones.cibervoto.utility;

import com.ciberiasoluciones.cibervoto.controlador.Controlador;
import com.ciberiasoluciones.cibervoto.modelo.Cargos;
import com.ciberiasoluciones.cibervoto.modelo.Miembros;
import com.ciberiasoluciones.cibervoto.modelo.Organizaciones;
import com.ciberiasoluciones.cibervoto.modelo.PoblacionElectoral;
import com.ciberiasoluciones.cibervoto.modelo.ProcesosElectorales;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;

/**
 *
 * @author IngJarava
 */
public class Procesos {
    private Controlador         control = new Controlador();
    private ProcesosElectorales pe      = new ProcesosElectorales();
    private Organizaciones      organizacion;
    private String              user;
    private String              pass;
    private int                 id_org = 1;
    private boolean             avotado;
    private boolean             sesion;
    private Collection<Cargos>  cargos;
    private Iterator<Cargos>    it_cargos;
    
    public Procesos(){
    
    }
            
           
    public boolean getVotar(){
        cargos = control.getCargos(pe);
        it_cargos = cargos.iterator();
        while(it_cargos.hasNext())
        {
            Cargos cargo = it_cargos.next();
            Collection<PoblacionElectoral> sufragantes = control.getSufragantes(cargo);
            Miembros usuario = control.darUsuario(pe, user, pass);
            Collection<PoblacionElectoral> poblacion = usuario.getPoblacionElectoralCollection();
            Iterator<PoblacionElectoral> iterador = poblacion.iterator();
            while(iterador.hasNext())
            {
                PoblacionElectoral pob = iterador.next();
                if(pob.getPoblacionElectoralPK().getCodElector()==usuario.getMiembrosPK().getCod()&& sufragantes.contains(pob))
                {
                   avotado = true; break;
                }else
                {
                   avotado = false; break;
                }
            }
        } 
        return avotado;
    }
        
    public boolean getProc_elec_Vigente(){
        boolean estado = false;
        organizacion = control.getOrganizacion(id_org);
        /* obtiene el proceso electoral vigente para la organizacion */
        pe = control.getProcesoElectoralVigente(organizacion);

        if (pe!=null)
        {
           estado = true;
        }
            
      return estado;
    }
    
    public int getCodigoMiembroPK(){
       return (control.darUsuario(pe, user, pass).getMiembrosPK().getCod());
    }
     
    public int getCodProcesoElectoralPK(){
       return (pe.getProcesosElectoralesPK().getCod());
    }
    
    public Date getFechaCierre()
    {
        organizacion = control.getOrganizacion(id_org);
        /* obtiene el proceso electoral vigente para la organizacion */
        pe = control.getProcesoElectoralVigente(organizacion);
        
        return new Date(pe.getFechaCierre().getTime()+ pe.getHoraCierre().getTime());
    }
}
